/**
 * 时间工具函数
 */

/**
 * 将时间转换为北京时间格式
 * @param {string|Date|number} time - 时间字符串、Date对象或时间戳（毫秒）
 * @returns {string} 格式化的北京时间字符串
 */
export function formatToBeijingTime(time) {
  if (!time) return '';
  
  try {
    // 创建Date对象，处理不同类型的输入
    let date;
    if (typeof time === 'number') {
      // 如果是时间戳（毫秒），直接使用
      date = new Date(time);
    } else {
      // 否则使用new Date()转换
      date = new Date(time);
    }
    
    // 验证日期有效性
    if (isNaN(date.getTime())) {
      console.error('无效时间:', time);
      return '';
    }
    
    // 直接使用Intl.DateTimeFormat格式化为北京时间
    // 这样可以正确处理UTC时间和本地时间
    return new Intl.DateTimeFormat('zh-CN', {
      timeZone: 'Asia/Shanghai',
      year: 'numeric',
      month: '2-digit',
      day: '2-digit',
      hour: '2-digit',
      minute: '2-digit',
      second: '2-digit',
      hour12: false
    }).format(date);
  } catch (error) {
    console.error('时间格式化错误:', error);
    return '';
  }
}

/**
 * 将时间转换为北京时间格式（更简洁的版本）
 * @param {string|Date|number} time - 时间字符串、Date对象或时间戳（毫秒）
 * @returns {string} 格式化的北京时间字符串
 */
export function formatToBeijingTimeSimple(time) {
  return formatToBeijingTime(time);
}